import SlsReporter, {
  wpkglobalerrorPlugin, // JS异常监控
  wpkperformancePlugin, // 性能监控
  wpkflowPlugin,
  wpkinterfacePlugin, // api请求异常
} from 'sls-wpk-reporter'
import { isTest } from '@/utils/common'

const wpk = new SlsReporter({
  bid: isTest() ? '' : '', // 监控账号找崔孝敬申请
  project: 'xiangzhu-front-monitor',
  endpoint: 'cn-beijing.log.aliyuncs.com',
  slsParams: {
    // eslint-disable-next-line camelcase
    app_name: '',
  },
  spa: true,
  debug: true,
  plugins: [
    [wpkperformancePlugin],
    [
      wpkglobalerrorPlugin,
      {
        jsErr: true, // 是否开启JS异常监控。
        resErr: true, // 是否开启资源加载异常监控。
      },
    ],
    [
      wpkflowPlugin,
      {
        enable: true,
      },
    ],
    [
      wpkinterfacePlugin,
      {
        enable: true, // 是否开启API请求监控。默认为true，表示开启。
        sampleRate: 100, // API请求数据的采样率，默认为1。
        withBody: true, // 是否上报请求Body。可能涉及敏感信息，因此默认为false，表示不上报。
        withResp: true, // 是否上报API返回数据。可能涉及敏感信息，因此默认为false，表示不上报。
        errorFilter: (params) => {
          console.log(params)
          /*
           * API请求异常数据过滤的回调函数，参数包含请求地址、响应码及响应内容。如果返回false，则不上报API请求异常数据。
           *  params格式为
           */
          const customParams = {
            url: '',
            status: '',
            response: '',
            body: '',
            reqHeaders: {},
            resHeaders: {},
            queryString: '',
          }
          // 返回结果为false或者Object对象。如果返回false，则此次API请求异常数据直接丢弃。
          return customParams
        },
      },
    ],
  ],
})

wpk.install()
